Remove unused network.default_{gateway,netmask}.
authorEwan Mellor <ewan@xensource.com>
Mon, 26 Feb 2007 00:07:14 +0000 (00:07 +0000)
committerEwan Mellor <ewan@xensource.com>
Mon, 26 Feb 2007 00:07:14 +0000 (00:07 +0000)
Signed-off-by: Ewan Mellor <ewan@xensource.com>
docs/xen-api/xenapi-datamodel.tex
tools/libxen/include/xen_network.h
tools/libxen/src/xen_network.c
tools/python/xen/xend/XendAPI.py
tools/python/xen/xend/XendNetwork.py
tools/python/xen/xend/XendNode.py

index 2978c06ff3be9d5c062ab6ec3981d27a0d65bf93..420f0ae6183fef081c163f2dfc2a9d061f917edc 100644 (file)
@@ -6657,8 +6657,6 @@ $\mathit{RW}$ &  {\tt name/label} & string & a human-readable name \\
 $\mathit{RW}$ &  {\tt name/description} & string & a notes field containg human-readable description \\
 $\mathit{RO}_\mathit{run}$ &  {\tt VIFs} & (VIF ref) Set & list of connected vifs \\
 $\mathit{RO}_\mathit{run}$ &  {\tt PIFs} & (PIF ref) Set & list of connected pifs \\
-$\mathit{RW}$ &  {\tt default\_gateway} & string & default gateway IP address. Used for auto-configuring guests with fixed IP setting \\
-$\mathit{RW}$ &  {\tt default\_netmask} & string & default netmask. Used for auto-configuring guests with fixed IP setting \\
 \hline
 \end{longtable}
 \subsection{Additional RPCs associated with class: network}
@@ -6908,138 +6906,6 @@ Get the PIFs field of the given network.
 
 
 value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_default\_gateway}
-
-{\bf Overview:} 
-Get the default\_gateway field of the given network.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} string get_default_gateway (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_default\_gateway}
-
-{\bf Overview:} 
-Set the default\_gateway field of the given network.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void set_default_gateway (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline 
-
-{\tt string } & value & New value to set \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~get\_default\_netmask}
-
-{\bf Overview:} 
-Get the default\_netmask field of the given network.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} string get_default_netmask (session_id s, network ref self)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-string
-}
-
-
-value of the field
-\vspace{0.3cm}
-\vspace{0.3cm}
-\vspace{0.3cm}
-\subsubsection{RPC name:~set\_default\_netmask}
-
-{\bf Overview:} 
-Set the default\_netmask field of the given network.
-
- \noindent {\bf Signature:} 
-\begin{verbatim} void set_default_netmask (session_id s, network ref self, string value)\end{verbatim}
-
-
-\noindent{\bf Arguments:}
-
-\vspace{0.3cm}
-\begin{tabular}{|c|c|p{7cm}|}
- \hline
-{\bf type} & {\bf name} & {\bf description} \\ \hline
-{\tt network ref } & self & reference to the object \\ \hline 
-
-{\tt string } & value & New value to set \\ \hline 
-
-\end{tabular}
-
-\vspace{0.3cm}
-
- \noindent {\bf Return Type:} 
-{\tt 
-void
-}
-
-
-
 \vspace{0.3cm}
 \vspace{0.3cm}
 \vspace{0.3cm}
index 228c7c2ab42c79239f4e90d51d7b5ec50936fc4f..f1bff0e22930863001bdca6bd45b667c834d2a40 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -26,8 +26,8 @@
 
 
 /*
- * The network class. 
- *  
+ * The network class.
+ * 
  * A virtual network.
  */
 
@@ -68,8 +68,6 @@ typedef struct xen_network_record
     char *name_description;
     struct xen_vif_record_opt_set *vifs;
     struct xen_pif_record_opt_set *pifs;
-    char *default_gateway;
-    char *default_netmask;
 } xen_network_record;
 
 /**
@@ -221,20 +219,6 @@ extern bool
 xen_network_get_pifs(xen_session *session, struct xen_pif_set **result, xen_network network);
 
 
-/**
- * Get the default_gateway field of the given network.
- */
-extern bool
-xen_network_get_default_gateway(xen_session *session, char **result, xen_network network);
-
-
-/**
- * Get the default_netmask field of the given network.
- */
-extern bool
-xen_network_get_default_netmask(xen_session *session, char **result, xen_network network);
-
-
 /**
  * Set the name/label field of the given network.
  */
@@ -249,20 +233,6 @@ extern bool
 xen_network_set_name_description(xen_session *session, xen_network network, char *description);
 
 
-/**
- * Set the default_gateway field of the given network.
- */
-extern bool
-xen_network_set_default_gateway(xen_session *session, xen_network network, char *default_gateway);
-
-
-/**
- * Set the default_netmask field of the given network.
- */
-extern bool
-xen_network_set_default_netmask(xen_session *session, xen_network network, char *default_netmask);
-
-
 /**
  * Return a list of all the networks known to the system.
  */
index 4c56e6e41d16465a4a4c16af8ad80223d1161ef6..2351404705317beb9e9a541fcc50acf6b8228515 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2006, XenSource Inc.
+ * Copyright (c) 2006-2007, XenSource Inc.
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
@@ -52,13 +52,7 @@ static const struct_member xen_network_record_struct_members[] =
           .offset = offsetof(xen_network_record, vifs) },
         { .key = "PIFs",
           .type = &abstract_type_ref_set,
-          .offset = offsetof(xen_network_record, pifs) },
-        { .key = "default_gateway",
-          .type = &abstract_type_string,
-          .offset = offsetof(xen_network_record, default_gateway) },
-        { .key = "default_netmask",
-          .type = &abstract_type_string,
-          .offset = offsetof(xen_network_record, default_netmask) }
+          .offset = offsetof(xen_network_record, pifs) }
     };
 
 const abstract_type xen_network_record_abstract_type_ =
@@ -84,8 +78,6 @@ xen_network_record_free(xen_network_record *record)
     free(record->name_description);
     xen_vif_record_opt_set_free(record->vifs);
     xen_pif_record_opt_set_free(record->pifs);
-    free(record->default_gateway);
-    free(record->default_netmask);
     free(record);
 }
 
@@ -246,40 +238,6 @@ xen_network_get_pifs(xen_session *session, struct xen_pif_set **result, xen_netw
 }
 
 
-bool
-xen_network_get_default_gateway(xen_session *session, char **result, xen_network network)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = network }
-        };
-
-    abstract_type result_type = abstract_type_string;
-
-    *result = NULL;
-    XEN_CALL_("network.get_default_gateway");
-    return session->ok;
-}
-
-
-bool
-xen_network_get_default_netmask(xen_session *session, char **result, xen_network network)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = network }
-        };
-
-    abstract_type result_type = abstract_type_string;
-
-    *result = NULL;
-    XEN_CALL_("network.get_default_netmask");
-    return session->ok;
-}
-
-
 bool
 xen_network_set_name_label(xen_session *session, xen_network network, char *label)
 {
@@ -312,38 +270,6 @@ xen_network_set_name_description(xen_session *session, xen_network network, char
 }
 
 
-bool
-xen_network_set_default_gateway(xen_session *session, xen_network network, char *default_gateway)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = network },
-            { .type = &abstract_type_string,
-              .u.string_val = default_gateway }
-        };
-
-    xen_call_(session, "network.set_default_gateway", param_values, 2, NULL, NULL);
-    return session->ok;
-}
-
-
-bool
-xen_network_set_default_netmask(xen_session *session, xen_network network, char *default_netmask)
-{
-    abstract_value param_values[] =
-        {
-            { .type = &abstract_type_string,
-              .u.string_val = network },
-            { .type = &abstract_type_string,
-              .u.string_val = default_netmask }
-        };
-
-    xen_call_(session, "network.set_default_netmask", param_values, 2, NULL, NULL);
-    return session->ok;
-}
-
-
 bool
 xen_network_get_all(xen_session *session, struct xen_network_set **result)
 {
index fd92d878f3baa15f1fc3a7987211642403269d37..3926cd7d75f14633cc6ea77711edc82e7c371880 100644 (file)
@@ -824,18 +824,13 @@ class XendAPI(object):
 
     network_attr_ro = ['VIFs', 'PIFs']
     network_attr_rw = ['name_label',
-                       'name_description',
-                       'default_gateway',
-                       'default_netmask']
+                       'name_description']
     
     network_funcs = [('create', 'network')]
     
-    def network_create(self, _, name_label, name_description,
-                       default_gateway, default_netmask):
+    def network_create(self, _, name_label, name_description):
         return xen_api_success(
-            XendNode.instance().network_create(name_label, name_description,
-                                               default_gateway,
-                                               default_netmask))
+            XendNode.instance().network_create(name_label, name_description))
 
     def network_destroy(self, _, ref):
         return xen_api_success(XendNode.instance().network_destroy(ref))
@@ -856,12 +851,6 @@ class XendAPI(object):
     def network_get_name_description(self, _, ref):
         return xen_api_success(self._get_network(ref).name_description)
 
-    def network_get_default_gateway(self, _, ref):
-        return xen_api_success(self._get_network(ref).default_gateway)
-
-    def network_get_default_netmask(self, _, ref):
-        return xen_api_success(self._get_network(ref).default_netmask)
-
     def network_get_VIFs(self, _, ref):
         return xen_api_success(self._get_network(ref).get_VIF_UUIDs())
 
@@ -874,13 +863,6 @@ class XendAPI(object):
     def network_set_name_description(self, _, ref, val):
         return xen_api_success(self._get_network(ref).set_name_description(val))
 
-    def network_set_default_gateway(self, _, ref, val):
-        return xen_api_success(self._get_network(ref).set_default_gateway(val))
-
-    def network_set_default_netmask(self, _, ref, val):
-        return xen_api_success(self._get_network(ref).set_default_netmask(val))
-
-
     # Xen API: Class PIF
     # ----------------------------------------------------------------
 
index 5e606957f18af30b3a000b7d6207204ac87f9f01..b589545ca5599ef25ecd258e6608540cdfc4fbb3 100644 (file)
@@ -27,43 +27,11 @@ from XendLogging import log
 
 IP_ROUTE_RE = r'^default via ([\d\.]+) dev (\w+)'
 
-def linux_get_default_network():
-    """Returns the network details of the host."""
-
-    ip_cmd = '/sbin/ip route'
-    rc, output = commands.getstatusoutput(ip_cmd)
-    default_route = None
-    default_dev = None
-    default_netmask = None
-    if rc == 0:
-        # find default route/device
-        for line in output.split('\n'):
-            is_default = re.search(IP_ROUTE_RE, line)
-            if is_default:
-                default_route = is_default.group(1)
-                default_dev = is_default.group(2)
-
-        # find network address and network mask
-        if default_dev:
-            dev_re = r'^([\d\.]+)/(\d+) dev %s' % default_dev
-            for line in output.split('\n'):
-                is_dev = re.search(dev_re, line)
-                if is_dev:
-                    # convert integer netmask to string representation
-                    netmask = 0xffffffff ^ (2**(32-int(is_dev.group(2))) - 1)
-                    packed = struct.pack('!I', netmask)
-                    default_netmask = socket.inet_ntoa(packed)
-
-    return (default_route, default_netmask)
-
-
 class XendNetwork:
-    def __init__(self, uuid, name, description, gateway, netmask):
+    def __init__(self, uuid, name, description):
         self.uuid = uuid
         self.name_label = name 
         self.name_description = description
-        self.default_gateway = gateway
-        self.default_netmask = netmask
 
     def set_name_label(self, new_name):
         self.name_label = new_name
@@ -73,16 +41,6 @@ class XendNetwork:
         self.name_description = new_desc
         XendNode.instance().save_networks()
 
-    def set_default_gateway(self, new_gateway):
-        if re.search('^\d+\.\d+\.\d+\.\d+$', new_gateway):
-            self.default_gateway = new_gateway
-            XendNode.instance().save_networks()
-
-    def set_default_netmask(self, new_netmask):
-        if re.search('^\d+\.\d+\.\d+\.\d+$', new_netmask):
-            self.default_netmask = new_netmask
-            XendNode.instance().save_networks()
-
     def get_VIF_UUIDs(self):
         result = []
         vms = XendDomain.instance().get_all_vms()
@@ -103,8 +61,6 @@ class XendNetwork:
             'uuid': self.uuid,
             'name_label': self.name_label,
             'name_description': self.name_description,
-            'default_gateway': self.default_gateway,
-            'default_netmask': self.default_netmask,
         }
         if transient:
             result['VIFs'] = self.get_VIF_UUIDs()
index 95068daf9b6ae82f2029a60dc7ce6bfda6e72bc1..4534dc57ff45078e9d0120ed9341631eb5b9c88a 100644 (file)
@@ -109,12 +109,9 @@ class XendNode:
             for net_uuid, network in saved_networks.items():
                 self.network_create(network.get('name_label'),
                                     network.get('name_description', ''),
-                                    network.get('default_gateway', ''),
-                                    network.get('default_netmask', ''),
                                     False, net_uuid)
         else:
-            gateway, netmask = linux_get_default_network()
-            self.network_create('net0', '', gateway, netmask, False)
+            self.network_create('net0', '', False)
 
         # initialise PIFs
         saved_pifs = self.state_store.load_state('pif')
@@ -168,15 +165,12 @@ class XendNode:
 
 
 
-    def network_create(self, name_label, name_description,
-                       default_gateway, default_netmask, persist = True,
+    def network_create(self, name_label, name_description, persist = True,
                        net_uuid = None):
         if net_uuid is None:
             net_uuid = uuid.createString()
         self.networks[net_uuid] = XendNetwork(net_uuid, name_label,
-                                              name_description,
-                                              default_gateway,
-                                              default_netmask)
+                                              name_description)
         if persist:
             self.save_networks()
         return net_uuid